/** /////////////////////////////////////////////////////////////////////////////////
 * @author	Jaeger, Mathias
 * @class 	gui.js dient zum Erstellen eines alternative dat.GUI-Menues fuer
 * Einstellungsmöglichkeiten, die inhaltlich nicht Bestandteil des Lehrmaterials 
 * des Web-Based-Training sind, sondern sich lediglich auf die WebGL-Anwendung 
 * beziehen
 /////////////////////////////////////////////////////////////////////////////////*/

gui = function() {
	laneAssist.gui = new dat.GUI({
		// Eigene Platzierung ermoeglichen
		autoPlace : false,
		// Breite etwas reduzieren
		width : 150
	});

	// Vater-Div abrufen und gui anhaengen
	var vaterContainer = document.getElementById('viewport');
	vaterContainer.appendChild(laneAssist.gui.domElement);

	// Eigene Positionierung
	laneAssist.gui.domElement.style.position = "absolute";
	laneAssist.gui.domElement.style.top = "0";
	laneAssist.gui.domElement.style.right = "0";

	// Optionen Parameterliste
	parameterOptionen = {
		Anaglyph : false,
		PostProcessing : false,
		Vollbild : false,
	};

	// Steuerung Parameterliste
	parameterSteuerung = {
		Maus : true,
		Tastatur : false,
		LeapMotion : false,
	};

	// Sound Parameterliste
	parameterSound = {
		aktiv : true,
	};

	// Optionen-Ordner mit Unterpunkten
	var optionenFolder = laneAssist.gui.addFolder("Optionen");
	var anaglyph = optionenFolder.add(parameterOptionen, "Anaglyph").listen();
	var postProcessing = optionenFolder.add(parameterOptionen, "PostProcessing").listen();
	var vollbild = optionenFolder.add(parameterOptionen, "Vollbild").listen();

	// Steuerungs-Ordner mit Unterpunkten
	var steuerungFolder = laneAssist.gui.addFolder("Steuerung");
	var steuerungMaus = steuerungFolder.add(parameterSteuerung, "Maus");
	var steuerungTastatur = steuerungFolder.add(parameterSteuerung, "Tastatur");
	var steuerungLeap = steuerungFolder.add(parameterSteuerung, "LeapMotion").listen();

	// Sound-Ordner
	var soundFolder = laneAssist.gui.addFolder("Sound");
	var soundAktivieren = soundFolder.add(parameterSound, "aktiv").listen();

	steuerungLeap.onChange(function (value){
		if(value){
			leapController();
		}
		laneAssist.leapMotionSteuerungAktiv = value;		
	});

	// Stereoskopie
	anaglyph.onChange(function(value) {
		laneAssist.anaglyph = value;
	});

	// Postprocessing
	postProcessing.onChange(function(value) {
		if (laneAssist.composer == null) {
			erstelleComposer();
		}
		laneAssist.postProcessing = value;
	});
	
	// Vollbild
	vollbild.onChange(function(value) {
		changeHandler();
	});

	// Sound
	soundAktivieren.onChange(function(value) {
		aktiv = value;
		laneAssist.soundAn = value;
		if(!value){
		laneAssist.ambientSound.volume = 0;
		}
		if(value){
		laneAssist.ambientSound.volume = -laneAssist.fahrzeug.geschwindigkeit * 0.01;			
		}
		
	});
	// Kontrollleiste verbergen
	laneAssist.gui.closed = true;
}; 